// components/SellPage/sales/sales.js
import {
  getSellAnalyse,
  getProductNav
} from '../../../network/market'
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    beginDate: "开始时间",
    endDate:"结束时间",
    // 列表数据
    pageList: [],
    afterList: [],
    // 导航数据 //
    // 供应商
    supplyerCompany: [{text:"供应商",value:0}],
    // 材料名称
    productName: [{text:"材料名称",value:0}],
    // 品种规格
    standards: [{text:"品种规格",value:0}],
    // 封装方式
    packMethod: [{text:"封装方式",value:0}],
    // 选项列值
    screen: {
      supplyerCompanyNum: 0,
      productNameNum: 0,
      standardsNum: 0,
      packMethodNum: 0
    }
  },
  // 结构完成加载生命周期
  attached() {
    // 获取产品数据列表
    this._getSellAnalyse()
    // 获取筛选项
    this._getProductNav()

    // this.getProductList = debounce(this.getProductList, 1000)
  },
  /**
   * 组件的方法列表
   */
  methods: {
    beginDate(){
      this.setData({
        beginDate:"开始时间"
      })
    },
    endDate(){
      console.log("取消了");
      this.setData({
        endDate:"结束时间"
      })
    },
    // 改变开始时间时触发
    beginDateChange: function (e) {
      this.setData({
        beginDate: e.detail.value
      })
    },
    // 改变结束时间时触发
    endDateChange: function (e) {
      this.setData({
        endDate: e.detail.value
      })
    },
    // 获取产品数据列表方法
    async _getSellAnalyse() {
      const res = await getSellAnalyse()
     
      this.setData({
        pageList: res.data,
        afterList: res.data
      })
    },
    // 获取产品导航选项
    async _getProductNav() {
      const res = await getProductNav()
      if (res.code === 200) {
        // 传入两个参数
        this.assignNav(res.data.supplyer_company, "supplyerCompany")
        this.assignNav(res.data.product.standards, "standards")
        this.assignNav(res.data.product.product_name, "productName")
        this.assignNav(res.data.product.pack_method, "packMethod")
      }
    },
    // 对产品导航进行数据处理
    assignNav(arr, cate) {
      var newArr = []
      for (let key in arr) {
        newArr.push(arr[key])
      }
      // 数组去重
      let anewArr = Array.from(new Set(newArr))
      anewArr.forEach((res, index, ) => {
        this.setData({
          [cate]: this.data[cate].concat({
            // text: arr[Object.keys(arr[index])],
            text: res,
            value: index+1
          })
        })
      });
    },
    // 下拉选择时触发
    async handleDownMenu(e) {
      const {
        type
      } = e.currentTarget.dataset
      this.setData({
        [`screen.${type}`]: e.detail
      })
      this.getProductList()
    },
    // 重新发送数据请求
    async getProductList() {
      const {
        supplyerCompany,
        standards,
        productName,
        packMethod
      } = this.data
      const {
        supplyerCompanyNum,
        standardsNum,
        productNameNum,
        packMethodNum
      } = this.data.screen
      const data = {
        // 公司名称
        supplyerCompany:supplyerCompanyNum==0?'': supplyerCompany[supplyerCompanyNum].text,
        product_name:productNameNum==0?'': productName[productNameNum].text,
        standards:standardsNum==0?'': standards[standardsNum].text,
        pack_method:packMethodNum==0?'': packMethod[packMethodNum].text,
        start_date:this.data.beginDate=="开始时间"?'':this.data.beginDate,
        end_date:this.data.endDate=="结束时间"?'':this.data.endDate
      }
      const res = await getSellAnalyse(data)
      if (res.code === 200) {
        this.setData({
          afterList: res.data
        })
      }
    }
  }
})